#include #include #include RTC_DS1307 RTC; // Массив со словами char* myNumeral[]={"\215\223\213\200", // ноль - 0 (нула) "\205\204\215\200", //одна - 1 (една) "\204\202\205", //две - 2 (две) "\222\220\210", //три - 3 (три) "\227\205\222\210\220\210", //четыре - 4 (четири) "\217\205\222", //пять - 5 (пет) * "\230\205\221\222", //шесть - 6 (шест) * "\221\205\204\223\214", //семь - 7 (седум) * "\216\221\223\214", //восемь - 8 (осум) * "\204\205\202\205\222", //девять - 9 (девет) * "\204\205\221\205\222", // десять - 10 (десет) * "\205\204\210\215\200\205\221\205\222", //одиннадцать - 11 (единаесет) * "\204\202\200\215\200\205\221\205\222", // двенадцать - 12 (дванаесет) * "\222\220\210\215\200\205\221\205\222", //тринадцать - 13 (тринаесет) * "\227\205\222\210\220\210\215\200\205\221\205\222", //четырнадцать - 14 (четиринаесет) "\217\205\222\215\200\205\221\205\222", // пятнадцать - 15 (петнаесет) * "\230\205\221\215\200\205\221\205\222", //шестнадцать - 16 (шеснаесет) * "\221\205\204\223\214\215\200\205\221\205\222", // семнадцать - 17 (седумнаесет) * "\216\221\223\214\215\200\205\221\205\222", //восемнадцать - 18 (осумнаесет) * "\204\205\202\205\222\215\200\205\221\205\222", //девятнадцать - 19 (деветнаесет) * "\204\202\200\205\221\205\222", // двадцать - 20 (дваесет) * "\222\220\210\205\221\205\222", // тридцать - 21 (триесет) * "\227\205\222\210\220\210\205\221\205\222", //сорок - 22 (четириесет) * "\217\205\205\221\205\222", //пятьдесят - 23 (пеесет) * "\205\204\205\215", // один - 24 (еден) * "\204\202\200", // два - 25 (два) "\227\200\221\216\222", // часов - 26 (часот) "\227\200\221", // час - 27 "\227\200\221\200", // часа - 28 "\214\210\215\223\222", // минут - 29 "\214\210\215\223\222\200", // минута - 30 (минута) "\214\210\215\223\222\210", // минуты - 31 (минути) "\214\210\215", // мин - 32 "\217\216\215\205\204\205\213\215\210\212", // понедельник - 33 (понеделник ) * "\202\222\216\220\215\210\212", // вторник - 34 (вторник) "\221\220\205\204\200", // среда - 35 (среда) "\227\205\222\202\220\222\216\212", // четверг - 36 (четврток) * "\217\205\222\216\212", //пятница - 37 (петок) * "\221\200\201\216\222\200", // суббота - 38 (сабота) * "\215\205\204\205\213\200", // воскресенье - 39 (недела) * "\112\200\215", // января - 40 (јануари) * "\224\205\201", // февраля - 41 (фебруари) * "\214\200\220", // марта - 42 (март) * "\200\217\220", // апреля - 43 (април) * "\214\200\112", // мая - 44 "\112\223\215", // июня - 45 (јуни) * "\112\223\213", // июля - 46 (јули) * "\200\202\203", // августа - 47 (август) * "\221\205\217", // сентября - 48 (септември) м * "\216\212\222", // октября - 49 (октомври) * "\215\216\205", // ноября - 50 (ноември) * "\204\205\212", // декабря - 51 (декември) * "\203\216\204" // год - 52 (год) }; String stringOne, stringTwo, stringThree, stringFour, stringFive, stringSix, stringHour, stringMin, stringHourd,stringHourdd, stringMind,stringMindd, stringSecd, stringSecdd, stringPerd, stringDaty, stringVtor, stringdday,stringDatyd, stringddayy, stringdmonth, stringdmonthh, stringGod, stringGodn; // эту фигню объявил для сборки времени словами из массива SoftwareSerial mySerial(11, 10); // RX, TX const int buttonPin = 2; // на второй вывод повесил кнопку выбора варианта отображения времени const int buttonChplus = 3; // на третий вывод повесил кнопку коррентировки час+ const int buttonChminus = 4; // на четвертый вывод повесил кнопку коррентировки час- const int buttonMinplus = 5; // на пятый вывод повесил кнопку коррентировки минуты+ const int buttonMinminus = 6; // на шестой вывод повесил кнопку коррентировки минуты- const int buttonSeknol = 7; // на седьмой вывод повесил кнопку коррентировки секунды в ноль const int buttonDispleysbros = 8; // на восьмой вывод повесил кнопку сброса дисплея const int buttonCorrHour = 12; // на двенадцатом выводе переключатель корректировки час минута секунда const int buttonCorrDay = 9; // на двенадцатом выводе переключатель корректировки дней месяца года int den, mec, god, dday,agod,ygod,mgod; // для вычисления дня недели int yar, mesyac, denec, chas, minuta, sekunda; // для коррентировки int korrektwrem; // коррекция ошибки часов реального времени void setup() { // Инициализируем последовательный интерфейс и ждем открытия порта: Serial.begin(9600); while (!Serial) { ; // ожидаем подключения к последовательному порту. Необходимо только для Leonardo } Serial.println("Goodnight moon!"); mySerial.begin(9600); { Serial.begin(57600); Wire.begin(); RTC.begin(); mySerial.write(0x1B); //_________________________Первый уровень яркости mySerial.write(0x2A); mySerial.write(0x01); //RTC.adjust(DateTime(2018, 2, 5, 19, 16, 0)); // задаём год/ месяц/ дата/ часы/ минуты/ секунды } { pinMode(buttonPin, INPUT_PULLUP); // вывод этот объявим входом для варианта отображения впемени pinMode(buttonChplus, INPUT_PULLUP); // и этот вывод объявим входом для корректироки час + pinMode(buttonChminus, INPUT_PULLUP); // и этот вывод объявим входом для корректировки час - pinMode(buttonMinplus, INPUT_PULLUP); // и этот вывод объявим входом для корректировки минута + pinMode(buttonMinminus, INPUT_PULLUP); // и этот вывод объявим входом для корректировки минута - pinMode(buttonSeknol, INPUT_PULLUP); // и этот вывод объявим входом для корректировки секунда в 0 pinMode(buttonDispleysbros, INPUT_PULLUP); // и этот вывод объявим входом для сброса дисплея pinMode(buttonCorrHour, INPUT_PULLUP); // и этот вывод объявим входом для полодения тумблера коррекция времени часминсек pinMode(buttonCorrDay, INPUT_PULLUP); // и этот вывод объявим входом для полодения тумблера коррекция времени деньмесяцгод } } void loop() // run over and over { if (mySerial.available()) Serial.write(mySerial.read()); if (Serial.available()) mySerial.write(Serial.read()); // mySerial.print("\f"); // для тестирования DateTime now = RTC.now(); { yar = now.year(); // присваиваем переменным значения года mesyac = now.month(); // месяца denec = now.day(); // дня chas = now.hour(); // часа minuta = now.minute(); // минуты sekunda = now.second(); // и секунды } int buttonStatehour = digitalRead(buttonCorrHour); // считываем состояние тумблера корректировки часминсек if (buttonStatehour == LOW) // если низкая, корректируем время часминсек {int buttonStatehp = digitalRead(buttonChplus); //настройка времени кнопками + час if (buttonStatehp == LOW){ chas = chas + 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatehm = digitalRead(buttonChminus); //настройка времени кнопками - час if (buttonStatehm == LOW){ chas = chas - 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatemp = digitalRead(buttonMinplus); //настройка времени кнопками + минуты if (buttonStatemp == LOW){ minuta = minuta + 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatemm = digitalRead(buttonMinminus); //настройка времени кнопками - минуты if (buttonStatemm == LOW){ minuta = minuta - 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatesn = digitalRead(buttonSeknol); //настройка времени кнопками секунда в ноль if (buttonStatesn == LOW){ sekunda = 0; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStateds = digitalRead(buttonDispleysbros); //сбросить дисплей if (buttonStateds == LOW){ mySerial.print("\f"); delay(50); } } int buttonStateday = digitalRead(buttonCorrDay); // считываем состояние тумблера корректировки деньмесяцгод if (buttonStateday == LOW) // если низкая, можно корректировать время деньмесяцгод { int buttonStatehp = digitalRead(buttonChplus); //настройка времени кнопками + год if (buttonStatehp == LOW){ yar = yar + 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatehm = digitalRead(buttonChminus); //настройка времени кнопками - год if (buttonStatehm == LOW){ yar = yar - 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatemp = digitalRead(buttonMinplus); //настройка времени кнопками + день if (buttonStatemp == LOW){ denec = denec + 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatemm = digitalRead(buttonMinminus); //настройка времени кнопками - день if (buttonStatemm == LOW){ denec = denec - 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatesn = digitalRead(buttonSeknol); //настройка времени кнопками + месяц if (buttonStatesn == LOW){ mesyac = mesyac + 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStateds = digitalRead(buttonDispleysbros); //сбросить дисплей if (buttonStateds == LOW){ mySerial.print("\f"); delay(50); } } if (chas == 19 && minuta == 03 && sekunda == 30 && korrektwrem == 0 ) // корректировка часов реального времени { sekunda = sekunda - 7; korrektwrem = korrektwrem + 1 ;RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); // на 7 секунд }; if (chas == 19 && minuta == 03 && sekunda == 59 ) { korrektwrem = 0; } int buttonState = digitalRead(buttonPin); // считываем состояние кнопки if (buttonState == HIGH) { // если высокая, время словами - иначе вся информация switch (now.hour()) { //собираем первую строку case 0: stringOne = myNumeral[0]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " "; break; case 1: stringOne = myNumeral[24]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 3: stringOne = myNumeral[3]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 4: stringOne = myNumeral[4]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 5: stringOne = myNumeral[5]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 6: stringOne = myNumeral[6]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 7: stringOne = myNumeral[7]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 8: stringOne = myNumeral[8]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 9: stringOne = myNumeral[9]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 10: stringOne = myNumeral[10]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 11: stringOne = myNumeral[11]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 12: stringOne = myNumeral[12]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 13: stringOne = myNumeral[13]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 14: stringOne = myNumeral[14]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 15: stringOne = myNumeral[15]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 16: stringOne = myNumeral[16]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 17: stringOne = myNumeral[17]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 18: stringOne = myNumeral[18]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 19: stringOne = myNumeral[19]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 20: stringOne = myNumeral[20]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 21: stringOne = myNumeral[20]; stringTwo = myNumeral[26]; stringThree = myNumeral[27]; stringHour = " " + stringOne + " " + stringTwo + " " + stringThree + " ";break; case 22: stringOne = myNumeral[20]; stringTwo = myNumeral[26]; stringThree = myNumeral[28]; stringHour = " " + stringOne + " " + stringTwo + " " + stringThree + " ";break; case 23: stringOne = myNumeral[20]; stringTwo = myNumeral[3]; stringThree = myNumeral[28]; stringHour = " " + stringOne + " " + stringTwo + " " + stringThree + " ";break; } switch (now.minute()) { // собираем вторую строку case 0: stringFour = myNumeral[0]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 1: stringFour = myNumeral[1]; stringSix = myNumeral[30]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 2: stringFour = myNumeral[2]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 3: stringFour = myNumeral[3]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 4: stringFour = myNumeral[4]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 5: stringFour = myNumeral[5]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 6: stringFour = myNumeral[6]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 7: stringFour = myNumeral[7]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 8: stringFour = myNumeral[8]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 9: stringFour = myNumeral[9]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 10: stringFour = myNumeral[10]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 11: stringFour = myNumeral[11]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 12: stringFour = myNumeral[12]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 13: stringFour = myNumeral[13]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 14: stringFour = myNumeral[14]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + "" + stringSix + " "; break; case 15: stringFour = myNumeral[15]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 16: stringFour = myNumeral[16]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 17: stringFour = myNumeral[17]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 18: stringFour = myNumeral[18]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 19: stringFour = myNumeral[19]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 20: stringFour = myNumeral[20]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 21: stringFour = myNumeral[20]; stringFive = myNumeral[1];stringSix = myNumeral[30]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break; case 22: stringFour = myNumeral[20]; stringFive = myNumeral[2];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 23: stringFour = myNumeral[20]; stringFive = myNumeral[3];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 24: stringFour = myNumeral[20]; stringFive = myNumeral[4];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 25: stringFour = myNumeral[20]; stringFive = myNumeral[5];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 26: stringFour = myNumeral[20]; stringFive = myNumeral[6];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break; case 27: stringFour = myNumeral[20]; stringFive = myNumeral[7];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 28: stringFour = myNumeral[20]; stringFive = myNumeral[8];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 29: stringFour = myNumeral[20]; stringFive = myNumeral[9];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 30: stringFour = myNumeral[21]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 31: stringFour = myNumeral[21]; stringFive = myNumeral[1];stringSix = myNumeral[30]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break; case 32: stringFour = myNumeral[21]; stringFive = myNumeral[2];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 33: stringFour = myNumeral[21]; stringFive = myNumeral[3];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 34: stringFour = myNumeral[21]; stringFive = myNumeral[4];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 35: stringFour = myNumeral[21]; stringFive = myNumeral[5];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 36: stringFour = myNumeral[21]; stringFive = myNumeral[6];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 37: stringFour = myNumeral[21]; stringFive = myNumeral[7];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 38: stringFour = myNumeral[21]; stringFive = myNumeral[8];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 39: stringFour = myNumeral[21]; stringFive = myNumeral[9];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 40: stringFour = myNumeral[22]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 41: stringFour = myNumeral[22]; stringFive = myNumeral[1];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 42: stringFour = myNumeral[22]; stringFive = myNumeral[2];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 43: stringFour = myNumeral[22]; stringFive = myNumeral[3];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 44: stringFour = myNumeral[22]; stringFive = myNumeral[4]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + ""; break; case 45: stringFour = myNumeral[22]; stringFive = myNumeral[5];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 46: stringFour = myNumeral[22]; stringFive = myNumeral[6];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 47: stringFour = myNumeral[22]; stringFive = myNumeral[7];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + "" + stringFive + " " + stringSix + " "; break; case 48: stringFour = myNumeral[22]; stringFive = myNumeral[8];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 49: stringFour = myNumeral[22]; stringFive = myNumeral[9];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + ""; break; case 50: stringFour = myNumeral[23]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 51: stringFour = myNumeral[23]; stringFive = myNumeral[1];stringSix = myNumeral[30]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 52: stringFour = myNumeral[23]; stringFive = myNumeral[2];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 53: stringFour = myNumeral[23]; stringFive = myNumeral[3];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 54: stringFour = myNumeral[23]; stringFive = myNumeral[4];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 55: stringFour = myNumeral[23]; stringFive = myNumeral[5];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 56: stringFour = myNumeral[23]; stringFive = myNumeral[6];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 57: stringFour = myNumeral[23]; stringFive = myNumeral[7];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 58: stringFour = myNumeral[23]; stringFive = myNumeral[8];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 59: stringFour = myNumeral[23]; stringFive = myNumeral[9];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; } mySerial.println(stringHour); //печать первой строки mySerial.print(stringMin); // печать второй строки delay(500); } else { den = now.day(); mec = now.month(); god = now.year(); agod = (14 - mec) / 12; ygod = god - agod; mgod = mec + 12 * agod - 2; dday = ( den + ygod + (ygod / 4) - ( ygod / 100 ) + (ygod / 400 ) + (31 * mgod) / 12) %7; // вычисление дня недели //Serial.print(dday); stringHourdd = now.hour(); stringMindd = (now.minute());stringSecdd = now.second(), stringDatyd = now.day(), stringGod = now.year(), stringGodn = myNumeral[52] ; switch (dday) { // блок имени дня недели case 0: stringdday = stringddayy + " "; stringddayy =myNumeral[39]; break; case 1: stringdday = stringddayy + " "; stringddayy =myNumeral[39]; break; case 2: stringdday = stringddayy + " "; stringddayy =myNumeral[34]; break; case 3: stringdday = stringddayy + " "; stringddayy = myNumeral[35]; break; case 4: stringdday = stringddayy + " "; stringddayy = myNumeral[36]; break; case 5: stringdday = stringddayy + " "; stringddayy = myNumeral[37]; break; case 6: stringdday = stringddayy + " "; stringddayy = myNumeral[38]; break; } switch (now.month()) { // блок имени месяца case 1: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[40]; break; case 2: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[41]; break; case 3: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[42]; break; case 4: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[43]; break; case 5: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[44]; break; case 6: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[45]; break; case 7: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[46]; break; case 8: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[47]; break; case 9: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[48]; break; case 10: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[49]; break; case 11: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[50]; break; case 12: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[51]; break; } if (now.hour() < 10) // это нолики перед часами до 10 { stringHourd = '0' + stringHourdd; } else { stringHourd = stringHourdd; } if (now.minute() < 10) // это нолики перед минутами до 10 { stringMind = '0' + stringMindd; } else { stringMind = stringMindd; } if (now.second() < 10) // это нолики перед секундами до 10 { stringSecd = '0' + stringSecdd; } else { stringSecd = stringSecdd; } if (now.day() < 10) // это нолики перед датой до 10 { stringDaty = '0' + stringDatyd; } else { stringDaty = stringDatyd; } stringPerd = stringHourd + ':' + stringMind + ':' + stringSecd + " " + stringdday; // собираем первую строку stringVtor = "\r\n" + stringDaty + " " + stringdmonth + stringGod + " " + stringGodn; // собираем вторую строку mySerial.println(stringPerd); // печатаем первую строку mySerial.print(stringVtor); // а это вторую delay(100); } }